package com.designpatterns.templatemethod;

abstract public class Game {
	abstract void initializeGame();
	abstract int playerCount();
	abstract void makePlay();
	abstract void printWinnter();
	
	// Template method.
	public final void playGame() {
		// Init game.
		initializeGame();
		
		// Do something with playerCount.
		playerCount();
		
		// Game process.
		makePlay();
		
		// Announce winner.
		printWinnter();
	}
}
